package com.meimeixia.pattern.singleton.demo8;

import java.lang.reflect.Constructor;

/**
 * @author: t-zhijiang.zhao
 * @date: 2024/11/26 上午10:32
 */
public class Client {
    public static void main(String[] args) throws Exception {
        // 1.获取Singleton类的字节码对象
        Class<Singleton> clazz = Singleton.class;
        // 2.获取Singleton类的私有无参构造方法对象
        Constructor<Singleton> constructor = clazz.getDeclaredConstructor();
        // 3. 取消访问检查
        constructor.setAccessible(true);
        // 4. 通过反射的方式创建Singleton对象
        Singleton instance = constructor.newInstance();
        Singleton instance1 = constructor.newInstance();
        // 如果返回的是true，那么说明并没有破坏单例模式；如果是false，那么说明破坏了单例模式
        System.out.println(instance == instance1);//false
    }
}
